SQL SELECT 구문
IT 위키
SQL의 SELECT 구문은 데이터베이스에서 원하는 데이터를 조회할 때 사용하는 기본적인 명령어이다. 테이블에서 특정 컬럼 또는 조건에 맞는 행(row)을 선택하여 결과 집합을 반환한다.
1 기본 문법[편집 | 원본 편집]
SELECT [컬럼명1], [컬럼명2], ...
FROM [테이블명]
[WHERE 조건]
[GROUP BY 컬럼]
[HAVING 조건]
[ORDER BY 컬럼 ASC|DESC]
[LIMIT 개수];
2 주요 구성 요소[편집 | 원본 편집]
- SELECT
- 반환할 컬럼 지정
- *을 사용하면 모든 컬럼 선택
- FROM
- 데이터를 가져올 테이블 지정
- WHERE
- 행을 필터링하는 조건 지정
- GROUP BY
- 그룹화 기준 컬럼 지정 (집계 함수와 함께 사용)
- HAVING
- GROUP BY 이후 집계 결과에 조건을 걸 때 사용
- ORDER BY
- 정렬 기준 지정 (기본값은 ASC, 오름차순)
- LIMIT
- 반환할 결과 행의 개수 제한 (DBMS에 따라 다를 수 있음)
3 예시 테이블[편집 | 원본 편집]
예제에서는 다음과 같은 employees 테이블을 사용한다:
id | name | department | salary |
---|---|---|---|
1 | Alice | IT | 6000 |
2 | Bob | HR | 4000 |
3 | Carol | IT | 7000 |
4 | Dave | Sales | 4500 |
5 | Eve | IT | 5000 |
4 예시 쿼리[편집 | 원본 편집]
4.1 1. 모든 직원 정보 조회[편집 | 원본 편집]
SELECT * FROM employees;
4.2 2. 이름과 급여만 조회[편집 | 원본 편집]
SELECT name, salary FROM employees;
4.3 3. IT 부서 직원만 조회[편집 | 원본 편집]
SELECT * FROM employees WHERE department = 'IT';
→ 결과:
id | name | department | salary |
---|---|---|---|
1 | Alice | IT | 6000 |
3 | Carol | IT | 7000 |
5 | Eve | IT | 5000 |
4.4 4. 급여가 높은 순으로 정렬[편집 | 원본 편집]
SELECT name, salary FROM employees ORDER BY salary DESC;
→ 결과:
name | salary |
---|---|
Carol | 7000 |
Alice | 6000 |
Eve | 5000 |
Dave | 4500 |
Bob | 4000 |
4.5 5. 부서별 인원 수 구하기[편집 | 원본 편집]
SELECT department, COUNT(*) AS count
FROM employees
GROUP BY department;
→ 결과:
department | count |
---|---|
IT | 3 |
HR | 1 |
Sales | 1 |
4.6 6. 평균 급여가 5000 이상인 부서만 조회[편집 | 원본 편집]
SELECT department, AVG(salary) AS avg_salary
FROM employees
GROUP BY department
HAVING AVG(salary) >= 5000;
→ 결과:
department | avg_salary |
---|---|
IT | 6000 |
4.7 7. 상위 3명만 조회[편집 | 원본 편집]
SELECT name, salary
FROM employees
ORDER BY salary DESC
LIMIT 3;
→ 결과:
name | salary |
---|---|
Carol | 7000 |
Alice | 6000 |
Eve | 5000 |
5 같이 보기[편집 | 원본 편집]
6 참고 문헌[편집 | 원본 편집]
- Melton, J., & Simon, A. R. (2002). SQL: 1999 – Understanding Relational Language Components. Morgan Kaufmann.
- Oracle SQL Reference
- PostgreSQL 공식 문서
- MySQL 문서